The Irish new car market: 2024–2025 analysis

This analysis explores a dataset containing information on new private cars licensed for the first time in 2024 and 2025 in Ireland.
The aim of the project is to examine the newcar dataset to visually investigate how factors such as fuel type, car brand, and seasonal patterns shape the Irish new car market.

By constructing a series of graphs and analyzing trends in new car registrations it’s possible to achieve valuable insights into consumer behaviour, market demand, and shifts in vehicle preferences over time.

The newcar dataset provides details on newly registered private cars such as fuel type, make and model, and the number of vehicles licensed.

To investigate the trends present in this data, the focus is on the following main question: how have new car registrations in Ireland changed over time, and what trends are evident in fuel type, car brand, and seasonal patterns?

To address this, the focus is on four sub-questions:

  1. Which fuel types are most frequently found in brand-new vehicles?

  2. Which car brands are the most popular and does this vary by month?

  3. How do new car registrations vary by month across the years in the dataset?

  4. Are there any recurring seasonal trends in new car registrations and do they vary by fuel type and year?

Together, these questions guide the analysis and each one will have a graph to draw justified conclusions from the trends.

Before conducting any sort of analysis to construct plots for the data, the dataset had to be converted from a wide format, where each month had its own column, into a tidy long format.
This helped reduce more than twenty separate month columns down to a single column of values, making the data much easier to work with.
Using pivot_longer(), all monthly columns were combined into a single Year and a single Month variable with a corresponding count column, simplifying the dataset.
This step is essential because year and month represent different types of information that we need to analyse independently.
The Year variable was then converted to numeric type using 'as.integer'; this is a crucial part of tidying our data because it converts corresponding data types to be numeric once in a numeric setting.

To adapt the dataset for seasonal analysis, months were grouped into seasons using a mutate() function.
Since the available data covered only 2024 and the first nine months of 2025, it was not possible to use meteorological seasons (for example December–February for winter) as this would have resulted in seasons with only one or two months of observations.
For this reason, a simplified approach was adopted by grouping months into trimesters corresponding to conventional calendar quarters (for example January–March as “winter”).

## General dataset adjustments:

newcar_yearmonth <- newcar |>
  # converting dataset into a longer version
  pivot_longer( 
    cols = 4:ncol(newcar),
    names_to = "month_year",
    values_to = "newcar",
    values_drop_na = TRUE
  ) |>
  separate(month_year, into = c("year", "month"), sep = " ") |>
  mutate(year = as.integer(year))



## (1) Data adjustments for the first plot: Total count by fuel type

month_cols <- grep("2024|2025", names(newcar), value = TRUE)

# calculating total registration per row
newcar2 <- newcar |>
  mutate(Total = rowSums(across(all_of(month_cols)), na.rm = TRUE))

# aggregating by fuel type 
fuel_counts <- newcar2 |>
  group_by(Type.of.Fuel) |>
  summarise(Count = sum(Total)) |>
  filter(Type.of.Fuel != "All fuel types") |> 
  arrange(desc(Count))



## (2) Data adjustments for the second plot: Top five brands monthly trend

newcar_long1 <- newcar_yearmonth |>
  mutate(
    registrations = newcar,
    month_date = as.Date(
      paste(year, match(month, month.name), 1, sep = "-")),
    brand = word(Make.and.Model, 1))

month_seq <- seq(as.Date("2024-01-01"), as.Date("2025-09-01"), by = "month")

# total registrations by brand
brand_totals <- newcar_long1 |>
  group_by(brand) |>
  summarise(total_registrations = sum(registrations, na.rm = TRUE), 
            .groups = "drop") |>
  arrange(desc(total_registrations))

# selecting the top 5 brands
top5 <- brand_totals |> 
  filter(brand != "All") |> # excluding the "All" brands total
  slice_max(total_registrations, n = 5) |> 
  pull(brand)

# calculating monthly totals for the top 5 brands
top5_monthly <- newcar_long1 |>
  filter(brand %in% top5) |>
  group_by(month_date, brand) |>
  summarise(total = sum(registrations, na.rm = TRUE), .groups = "drop") |>
  
  # filling missing months with zeros
  complete(brand, month_date = month_seq, fill = list(total = 0)) |>
  
  arrange(brand, month_date)



## (3) Data adjustments for the third plot: Monthly totals for new cars

newcar_tidy <- newcar_yearmonth |>
  filter(Statistic == "New Private Cars Licensed for the First Time") |>
  mutate(
    Year = year,
    Month = factor(month, levels = month.name),
    Count = newcar
  ) |>
  select(Year, Month, Count) |>
  filter(!is.na(Count), Count > 0) # removing zeros and missing values



## (4) Data adjustments for the fourth plot: Seasonal totals by fuel type

newcar_trimesters <- newcar_yearmonth |>
  filter(newcar > 0) |> # remove zero values 
  select(month, year, newcar, Type.of.Fuel) |>  # selecting the needed columns
  filter(`Type.of.Fuel` != "All fuel types") |>
  
  # changing the variable name to be fully seen on the plot
  mutate(Type.of.Fuel = recode(
    Type.of.Fuel,
    "Petrol or Diesel plug-in hybrid electric" = 
      "P or D plug-in hybrid electric")) |>
  
  # assigning each month to a season
  mutate(
    trimester = case_when(
      month %in% c("January", "February", "March")   ~ "Winter",
      month %in% c("April", "May", "June")          ~ "Spring",
      month %in% c("July", "August", "September")  ~ "Summer",
      month %in% c("October", "November", "December") ~ "Autumn"
    ),
    season = factor(trimester, levels = c("Winter","Spring","Summer","Autumn"))
  ) |>
  
  # aggregating by season and fuel type
  group_by(year, season, Type.of.Fuel) |>
  summarise(total_newcar = sum(newcar, na.rm = TRUE), .groups = "drop") 

As I begin exploring the dataset, the first visualisation naturally leads us to an examination of how fuel types shape the Irish new car market.

# Fuel type barplot 
ggplot(fuel_counts, aes(x = reorder(Type.of.Fuel, Count), 
                        y = Count,
                        fill = Type.of.Fuel)) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = scales::comma(Count)),
            hjust = -0.2,
            size = 3) +
  coord_flip() +
  theme_minimal() +
  scale_y_continuous(
    labels = scales::comma,
    expand = expansion(mult = c(0, 0.15))) +
  scale_fill_viridis(discrete = TRUE, option = "C") +   
  labs(
    x = "Fuel Type",
    y = "Number of new car registrations")
Figure 1: Total new car registrations in Ireland from January 2024 to September 2025, by fuel type. Petrol is the most common fuel, followed by petrol–electric hybrids, diesel, and fully electric vehicles.Colors indicate fuel categories.

Figure 1: Total new car registrations in Ireland from January 2024 to September 2025, by fuel type. Petrol is the most common fuel, followed by petrol–electric hybrids, diesel, and fully electric vehicles.Colors indicate fuel categories.

The bar chart above displays the total number of registrations of brand-new vehicles between January 2024 to September 2025.
Each bar shows the cumulative count of vehicles for a specific fuel category, making it easy to compare the popularity of different fuel types.
The results immediately reveal the strong presence of traditional choices: petrol vehicles clearly dominate, followed by petrol–electric hybrids and diesel. Fully electric cars also appear in significant numbers, though still far behind petrol.
Meanwhile, plug-in hybrids and diesel–electric hybrids play a much smaller role, and the “Other fuel types” category records a count of zero, showing that no vehicles in the dataset were registered under this classification during the time period.
This first glance already shows that hybrids and electric cars are emerging, but petrol continues to set the pace.

Moving from fuel to brand, the next graph traces monthly registrations for the five most popular brands from early 2024 to late 2025 (Hyundai, Kia, Skoda, Toyota and Volkswagen).

# Car brands plot
p = ggplot(top5_monthly, aes(x = month_date, y = total, color = brand)) +
  geom_line() +
  geom_point() +
  scale_color_viridis_d(option = "D") +
  scale_x_date(date_breaks = "1 month", 
               date_labels = "%b %Y", 
               limits = c(min(month_seq), 
                          max(month_seq))) +
  theme_minimal() +
  labs(x = "Month",
       y = "Number of new car registrations",
       color = "Brand") +
  theme(
    axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5),
    legend.title = element_blank())

ggplotly(p)
Jan 2024Feb 2024Mar 2024Apr 2024May 2024Jun 2024Jul 2024Aug 2024Sep 2024Oct 2024Nov 2024Dec 2024Jan 2025Feb 2025Mar 2025Apr 2025May 2025Jun 2025Jul 2025Aug 2025Sep 2025Oct 202502000400060008000
BrandHyundaiKiaSkodaToyotaVolkswagenMonthNumber of new car registrations

Figure 2: Monthly car registrations in Ireland from early 2024 to late 2025, by brand. The plot shows data for Hyundai, Kia, Skoda, Toyota, and Volkswagen. Colors indicate brands. Sharp peaks occur in January and July of both years, Toyota consistently records the highest registrations during peak months.

A clear seasonal pattern emerges: all brands experience sharp increases in registrations during January and July of both years, reflecting the biannual new car registration periods in Ireland (241/242 in 2024 and 251/252 in 2025) when consumers rush to purchase new vehicles.
Among the brands, Toyota consistently records the highest peaks, particularly in January of both years, indicating strong market dominance during key registration months. Skoda and Hyundai also display pronounced spikes, while Kia and Volkswagen show more moderate growth.
Outside the major registration periods, monthly registrations drop significantly across all brands, highlighting the strong influence of seasonal purchasing behaviour.
Overall, the graph shows that Toyota remains the leading brand during peak months, and that car demand is heavily concentrated around the biannual registration cycles.

When we compare registrations month by month across 2024 and 2025, this seasonal rhythm becomes even more evident.

# Monthly count barplot

ggplot(newcar_tidy,
       aes(x = Month,
           weight = Count,         
           fill   = factor(Year))) +
  geom_bar(position = "dodge") +   
  scale_fill_manual(
    values = c(
      "2024" = "#0072B2",
      "2025" = "#CC79A7"), name = "Year") +
  theme_minimal() +
  xlab("Month") +
  ylab("Number of new car registrations") +
  theme(
    axis.text.x = element_text(hjust = 1),
    panel.grid.minor = element_blank() ) +
  coord_flip()
Figure 3: Monthly new private car registrations in Ireland by year (2024 vs 2025). The total number of new private vehicle registrations for each month in 2024 (purple) and 2025 (blue) is displayed in the bar chart, which compares the two years side by side. Registrations in 2025 are slightly lower than in 2024, indicating a minor overall decline. Data for the last three months of 2025 are not available.

Figure 3: Monthly new private car registrations in Ireland by year (2024 vs 2025). The total number of new private vehicle registrations for each month in 2024 (purple) and 2025 (blue) is displayed in the bar chart, which compares the two years side by side. Registrations in 2025 are slightly lower than in 2024, indicating a minor overall decline. Data for the last three months of 2025 are not available.

The bar chart pairing the bars for the two years shows month by month fluctuations from year to year.
The data shows that registrations are very seasonal, confirming January and July as the high points, with the remaining months showing far lower numbers.

At first glance, 2024 seems to have a higher number of car registrations than 2025, however, we must consider that the 2025 data only runs to September, leaving the final three months missing.
With this visible gap, we aren’t able to claim a full year decline and any apparent decline must be interpreted with caution. Based on the available data, 2024 still appears to have higher registration numbers overall, but the absence of the last three months prevents us from drawing long-term conclusions.

Finally, examining how fuel types vary across the seasons further clarifies the patterns observed in the previous graphs.

# Number of cars per season and fuel type barplot
ggplot(newcar_trimesters, aes(x = season, y = total_newcar, fill = factor(year))) +
  geom_bar(stat = "identity", position = "dodge") +
  facet_wrap(newcar_trimesters$Type.of.Fuel) +
  theme_minimal() +
  labs(
    x = "Season",
    y = "Number of new car registrations",
    fill = "Year")
 Figure 4: Number of new cars registrations in Ireland in 2024 and 2025, by season and fuel type. Seasons are grouped as follows: Winter (Jan–Mar), Spring (Apr–Jun), Summer (Jul–Sep), and Autumn (Oct–Dec). Red bars represent 2024 and blue bars represent 2025. Most new cars are sold during the winter months, while autumn shows the lowest sales. No data are available for Winter 2025. Among fuel types, petrol vehicles account for the highest number of new registrations, while diesel and electric hybrid models show the lowest sales. P and D meaning petrol and diesel, respectively. Data for autumn 2025 are not available.

Figure 4: Number of new cars registrations in Ireland in 2024 and 2025, by season and fuel type. Seasons are grouped as follows: Winter (Jan–Mar), Spring (Apr–Jun), Summer (Jul–Sep), and Autumn (Oct–Dec). Red bars represent 2024 and blue bars represent 2025. Most new cars are sold during the winter months, while autumn shows the lowest sales. No data are available for Winter 2025. Among fuel types, petrol vehicles account for the highest number of new registrations, while diesel and electric hybrid models show the lowest sales. P and D meaning petrol and diesel, respectively. Data for autumn 2025 are not available.

The highest number of cars are consistently sold in the winter months (January–March), followed by another peak during the summer period (July–September). In contrast, spring (April–June) shows noticeably lower sales, and autumn (October–December) represents the weakest quarter of the year.
This trend is visible across all fuel types in the individual panels of the plot. The visualization also highlights a shift in consumer preferences: new car sales are increasingly transitioning from traditional petrol and diesel vehicles toward electric and hybrid models. In particular, a growth in sales of fully electric and plug-in hybrid vehicles is evident in 2025, while both petrol and diesel cars show a decline compared with the previous year.
At the same time, diesel and electric-hybrid models remain the least sold fuel types overall, with noticeable differences between 2024 and 2025 that vary by season: some seasons show higher registrations in 2024, while others show a slight increase in 2025, indicating that their demand fluctuates more with seasonal factors than with market trends.

Through the analysis of the newcar dataset from the CSO, many insights into consumer behaviour and market dynamics in Ireland emerged.
Seasonal trends appear across all visualizations, with spikes in months like January when registrations are consistently at their highest.
Yearly comparisons also suggest that 2024 recorded slightly higher totals than the partially available 2025 data.

Registrations are highest in the winter months (January–March), and petrol cars remain the most common overall, however, an important shift between 2024 and 2025 becomes evident: the data shows a gradual move toward hybrid and fully electric vehicles, signalling the early stages of an ecological transition within the Irish car market.
Although these low-emission vehicles are not yet the dominant choice, their increasing presence reflects growing environmental awareness, changing consumer preferences and supportive policies favoring greener technologies.

Overall, the visual and statistical evidence presents a clear picture of the Irish new car market shaped by seasonal cycles, evolving fuel preferences, and distinct differences across brands.

These insights provide a clear visual and statistical summary of current consumer patterns and of a sector slowly moving toward a more sustainable future.